home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / snip9503 / dirent.h < prev    next >
C/C++ Source or Header  |  1995-03-14  |  3KB  |  104 lines

  1. /*
  2. **  DIRENT.H - Posix compliant header
  3. **
  4. **  Original Copyright 1988-1991 by Bob Stout as part of
  5. **  the MicroFirm Function Library (MFL)
  6. **
  7. **  This subset version is functionally identical to the
  8. **  version originally published by the author in Tech Specialist
  9. **  magazine and is hereby donated to the public domain.
  10. */
  11.  
  12. #ifndef DIRENT_H
  13. #define DIRENT_H
  14.  
  15. #include <stdio.h>                        /* For FILENAME_MAX     */
  16. #include <dos.h>
  17.  
  18. #ifndef OS2
  19.  #if defined(__ZTC__)
  20.   #define DSTRUCT       FIND              /* ZTC++/SC++           */
  21.   #define ATTRIBUTE     attribute
  22.   #define NAME          name
  23.   #define TIME          time
  24.   #define DATE          date
  25.   #define FSIZE         size
  26.   #pragma pack(1)
  27.   #include <direct.h>
  28.  #elif defined(__TURBOC__)
  29.   #define DSTRUCT       ffblk             /* TC/C++               */
  30.   #define ATTRIBUTE     ff_attrib
  31.   #define NAME          ff_name
  32.   #define TIME          ff_ftime
  33.   #define DATE          ff_fdate
  34.   #define FSIZE         ff_fsize
  35.   #include <dir.h>
  36.  #else
  37.   #define DSTRUCT       find_t            /* Assume MSC/QC        */
  38.   #define ATTRIBUTE     attrib
  39.   #define NAME          name
  40.   #define TIME          time
  41.   #define DATE          date
  42.   #define FSIZE         size
  43.  
  44.   /*
  45.   **  The following line generates a benign warning under MSC 7+
  46.   **  when compiled without /Zp1.
  47.   */
  48.  
  49.   #pragma pack(1)
  50.   #include <direct.h>
  51.  #endif
  52. #else                                     /* OS/2                 */
  53.  #define INCL_DOSFILEMAN
  54.  #include <os2.h>
  55.  struct DSTRUCT {
  56.        BYTE  reserved[21];
  57.        BYTE  ATTRIBUTE;
  58.        FTIME TIME;
  59.        FDATE DATE;
  60.        ULONG FSIZE;
  61.        CHAR  NAME[13];
  62.  };
  63. #endif
  64.  
  65. #define FA_ANY 0xff
  66. #undef FA_DIREC
  67. #define FA_DIREC 0x10
  68.  
  69. /*
  70. **  Portable find first/next functions from RFIND1ST.C
  71. */
  72.  
  73. struct DSTRUCT *rfind_1st(char *, unsigned, struct DSTRUCT *);
  74. struct DSTRUCT *rfind_nxt(struct DSTRUCT *);
  75.  
  76. typedef struct
  77. {
  78.       int               dd_fd;
  79.       unsigned          dd_loc,
  80.                         dd_size;
  81.       struct DSTRUCT    dd_buf;
  82.       char              dd_dirname[FILENAME_MAX];
  83. } DOS_DIR;
  84.  
  85. DOS_DIR        *opendir(char *);
  86. int             closedir(DOS_DIR *),
  87.                 rewinddir(DOS_DIR *);
  88. struct DSTRUCT *readdir(DOS_DIR *),
  89.                *seekdir(DOS_DIR *, int, int);
  90. #define         telldir(dd) dd->loc
  91.  
  92. /*
  93. **  Other useful functions from DIRMASK.C and PATMAT.C
  94. */
  95.  
  96. int             dirmask(struct DSTRUCT *,char *,char *,unsigned,unsigned);
  97. int             patmat(const char *, const char *);
  98.  
  99. extern int DFerr;
  100.  
  101. extern DOS_DIR _DIRS[];
  102.  
  103. #endif /* DIRENT_H */
  104.